Skip to main content

Vibration Analysis

Following subtopics are derived from the whitepaper by ST on predictive maintenance.

Other references

  1. Note on Vibration analysis from pumpandsystems.compumpandsystems
  2. ST documents

Competitors

  1. AssetWatch
    1. They were funded by g2vp
  2. Augury
  3. nanoprecise
  4. kcftech

Ideas

  • Calculate FFT for individual CEEMDAN components to get the clean frequency and amplitudes out.
  • Explore the value of RMS (3-components together) analysis
  • Explore PCA

Time domain analysis

They estimate both acceleration and speed through the accelerometer readings.

derive acceleration and speed hpf description

  • Should we derive speed as a parameter?
    • For now we don't
  • We want to consider whether to implement a high pass filter.See if we already have a HPF in the accelerometer itself and if we are utilizing it?
  • Multiple settings for sampling (0.5G, 1G, 2G, etc.) based on the maximum frequency we need to capture.

Then for both or either from acceleration and speed, peak and RMS values should be calculated and alarm conditions need to be defined based on value thresholds.

td thresholds

Frequency domain analysis

FFT is calculated on either acceleration or speed.

fft calculation flow

  • Dataflow of ST FFT calculation

    • Loading data into a circular buffer
    • Appropriate windowing
    • Averaging with or without overlapping
    • Calculate FFT and buffer the result to calculate AVG. A dual buffer method can be used where the secondary buffer is used to hold the data for FFT calculation where as the primary circular buffer can be filled with real-time accelerometer data
  • On a low priority test the implication of FFT averaging using the simulation setup. If it yields better results, we should update the DeepVibe setup to send n x 1024 samples by sending n packets for each measurement cycle for appropriate value of n.

  • Shall we implement all these in ESP32 itself?

    • Sudhir: No
  • Analyze FFT spectrum

    • Define the alarm threshold values based on frequency bands. freq thresholds freq bands freq patterns

    • If above can be implemented on ESP32, analysis can also be done on ESP32 side. Thresholds can be defined as three arrays for normal, warning, and critical conditions.

      • Sudhir: No FFT implementation of ESP32
    • If we plan to have Grafana alerts sent out on these conditions, we can use the following approach.

      • Sudhir: No. We are not going to use Grafana for setting these up
      • Define the thresholds as arrays in the C application where we calculate FFT.
      • Create alerts table for each node in TDEngine. Need to define the structure.
      • Grafana will send alerts based on the content in alerts table in TDEngine DB.
    • Try standalone Python application (Implement the thresholds)

      • define the thresholds for 500Hz buckets
      • How to implement Figure 8?
    • How do we tune the alarm thresholds for our application?

Python based FFT alert condition generation test

This colab notebook is used for the experiment.

A 425Hz sinusoidal with an amplitude of 500 mG is generated as main time-domain signal. They are transmitted as following under each axis.

  1. gx: primary component of the signal
  2. gy: 2nd harmonic of the signal
  3. gx: primary + 4 harmonics of the signal

FFT result and the dummy condition thresholds are shown in the following graphs.

fft result

Based on the thresholds, three condition labels, Normal, Warning, and Critical, are assigned for each frequency bin. Following is a filtered result for Warning and Critical statuses on all axises.

filtered result

We can modify this workflow to send out alerts, save the operation condition data, and more.